内に潜む隠された言語
Rustには秘密がある:実際には 二つの言語が一つのもの。一方、安全なRustはあなたの守護者だが、Rustコンパイラは根本的に 慎重な。それは厳格な哲学に従っている:正当で安全なプログラムを拒否するほうが、一見危険なものを誤って許可するより良い。このため、ハードウェアが行えることと、コンパイラが証明できることが一致しないギャップが生じる。
硬直的な現実
コンパイラを厳格なゲートキーパーだと想像してみよう。私たちのコード例では、マッチガード if y は完全なパターングループに適用される (4 | 5 | 6)。この硬直的な 優先順位 は借用チェッカーの動作方法を反映している;メモリに対してグローバルかつ妥協のないルールを適用する。しかし、下層にあるコンピュータのハードウェアは 本質的に安全ではないである。所有権やライフタイムの概念を理解していない。高性能なツール、例えば split_at_mutを構築するには、 不安定なコード 『脱出口』へと踏み込む必要がある。これは技術的には健全だが、コンパイラの静的解析では論理的に複雑すぎる操作を行うためである。
赤い円と緑の円の間のギャップこそが、不安定なコードが存在する場所であり、静的解析が失敗したときにもハードウェアの全能力にアクセスできるようにしてくれる。
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>